工業(yè)現(xiàn)場(chǎng)嵌入式控制器軟件的分析和設(shè)計(jì)
【摘要】:本文分析了 Linux 在嵌入式系統(tǒng)中應(yīng)用的可能性及優(yōu)勢(shì),并設(shè)計(jì)了基于嵌入式 Linux 的工業(yè)現(xiàn)場(chǎng)控制器軟件,并實(shí)際應(yīng)用于計(jì)算機(jī)集散控制系統(tǒng)(DCS)中,滿足了一般甚至核電領(lǐng)域中DCS 系統(tǒng)對(duì)現(xiàn)場(chǎng)控制器的要求。
關(guān)鍵詞:嵌入式 Linux;DCS;現(xiàn)場(chǎng)控制器
Abstract The possibilities and advantages of application of Linux in embedded systems are first analyzed in this paper, and then an embedded Linux based industrial field control station software is designed and actually applied in the Distributed Control System (DCS), and satisfies the requirements for field control station in DCS of general even nuclear power plant fields.
Keywords: Embedded Linux; DCS; Filed Control Station
1.引言
現(xiàn)場(chǎng)控制器是DCS系統(tǒng)的核心組成部分,擔(dān)負(fù)著接收并執(zhí)行控制算法、采集現(xiàn)場(chǎng)數(shù)據(jù)并 進(jìn)行大量數(shù)據(jù)處理等職能,且具有控制周期短,運(yùn)行穩(wěn)定、可靠等要求。因此,如何選用高 性能的硬件,開發(fā)穩(wěn)定可靠的嵌入式操作系統(tǒng),并設(shè)計(jì)現(xiàn)場(chǎng)控制器軟件系統(tǒng)成為DCS系統(tǒng)開 發(fā)中的關(guān)鍵之一。
本文分析并設(shè)計(jì)了基于嵌入式Linux的工業(yè)現(xiàn)場(chǎng)控制器的控制軟件系統(tǒng)。
2. Embedded Linux的優(yōu)勢(shì)
Embedded Linux 具有如下特點(diǎn)[1]:
第一,Linux 系統(tǒng)內(nèi)核源碼完全開放。因?yàn)?Linux 的內(nèi)核源碼是完全開發(fā)的,所以不同 領(lǐng)域和層次的用戶可以免費(fèi)得到 Linux 內(nèi)核源碼,并根據(jù)自己的應(yīng)用需要方便的對(duì)內(nèi)核進(jìn)行 修改。這樣可以有效控制成本,并設(shè)計(jì)和開發(fā)出滿足其需要的嵌入式系統(tǒng)。
第二,強(qiáng)大的網(wǎng)絡(luò)功能。Linux 的網(wǎng)絡(luò)連接能力緊密的和 Linux 內(nèi)核結(jié)合在一起,為用 戶提供了完善而強(qiáng)大的網(wǎng)絡(luò)功能。實(shí)際上,Linux 就是依靠互聯(lián)網(wǎng)才迅速發(fā)展了起來。Linux 支持所有標(biāo)準(zhǔn) Internet 協(xié)議,可以輕松地與 TCP/IP、LAN Manager、Windows for Workgroups、 Novell Netware 或 Windows NT 網(wǎng)絡(luò)集成在一起。可以在 Linux 的網(wǎng)絡(luò)協(xié)議?;A(chǔ)上開發(fā)出 嵌入式的 TCP/IP 網(wǎng)絡(luò)協(xié)議棧,使得嵌入式設(shè)備具有強(qiáng)大的網(wǎng)絡(luò)功能。
第三,Linux 是 Unix 兼容,完全符合 IEEE POSIX.1 標(biāo)準(zhǔn)。許多運(yùn)行在 Unix 上的軟件 可以不加修的運(yùn)行在 Linux 上。因此嵌入式 Linux 具有很多豐富的免費(fèi)軟件資源可以利用。 第四,Linux 具備完整的開發(fā)工具鏈,嵌入式系統(tǒng)開發(fā)者容易建立嵌入式系統(tǒng)的開發(fā)環(huán) 境和交叉運(yùn)行環(huán)境,可以跨越嵌入式系統(tǒng)開發(fā)中仿真工具的障礙。從編輯階段,編譯階段到調(diào)試階段,可以方便的使用 GNU 提供的 EMACS,GCC,GDB,KGDB 等工具鏈。 第五,Linux 具有廣泛的硬件支持。Linux 能運(yùn)行在,無論是 RISC 還是 CISC、32 位還是 64 位等各種處理器上。Linux 支持各種主流的硬件設(shè)備和最新的硬件技術(shù),可以在沒有MMU 的處理器上運(yùn)行。所以嵌入式 Linux 有廣泛的應(yīng)用前景。
3. 工業(yè)控制DCS系統(tǒng)的組成
DCS 是分散控制系統(tǒng)(Distributed Control System)的簡稱,國內(nèi)一般習(xí)慣稱為集散控 制系統(tǒng)。它是一個(gè)由過程控制級(jí)和過程監(jiān)控級(jí)組成的以通信網(wǎng)絡(luò)為紐帶的多級(jí)計(jì)算機(jī)系統(tǒng), 綜合了計(jì)算機(jī)(Computer)、通訊(Communication)、顯示(CRT)和控制(Control)等 4C 技術(shù),其基本思想是分散控制、集中操作、分級(jí)管理、配置靈活、組態(tài)方便。
DCS 具有以下特點(diǎn)[2]:
(1)高可靠性
由于 DCS 將系統(tǒng)控制功能分散在各臺(tái)計(jì)算機(jī)上實(shí)現(xiàn),系統(tǒng)結(jié)構(gòu)采用容錯(cuò)設(shè)計(jì),因此某 一臺(tái)計(jì)算機(jī)出現(xiàn)的故障不會(huì)導(dǎo)致系統(tǒng)其它功能的喪失。此外,由于系統(tǒng)中各臺(tái)計(jì)算機(jī)所承擔(dān) 的任務(wù)比較單一,可以針對(duì)需要實(shí)現(xiàn)的功能采用具有特定結(jié)構(gòu)和軟件的專用計(jì)算機(jī),從而使 系統(tǒng)中每臺(tái)計(jì)算機(jī)的可靠性也得到提高。
(2)開放性
DCS 采用開放式、標(biāo)準(zhǔn)化、模塊化和系列化設(shè)計(jì),系統(tǒng)中各臺(tái)計(jì)算機(jī)采用局域網(wǎng)方式 通信,實(shí)現(xiàn)信息傳輸,當(dāng)需要改變或擴(kuò)充系統(tǒng)功能時(shí),可將新增計(jì)算機(jī)方便地連入系統(tǒng)通信 網(wǎng)絡(luò)或從網(wǎng)絡(luò)中卸下,幾乎不影響系統(tǒng)其他計(jì)算機(jī)的工作。
(3)靈活性 通過組態(tài)軟件根據(jù)不同的流程應(yīng)用對(duì)象進(jìn)行軟硬件組態(tài),即確定測(cè)量與控制信號(hào)及相互
間連接關(guān)系、從控制算法庫選擇適用的控制規(guī)律以及從圖形庫調(diào)用基本圖形組成所需的各種 監(jiān)控和報(bào)警畫面,從而方便地構(gòu)成所需的控制系統(tǒng)。
(4)易于維護(hù) 功能單一的小型或微型專用計(jì)算機(jī),具有維護(hù)簡單、方便的特點(diǎn),當(dāng)某一局部或某個(gè)計(jì)算機(jī)出現(xiàn)故障時(shí),可以在不影響整個(gè)系統(tǒng)運(yùn)行的情況下在線更換,迅速排除故障。
(5)協(xié)調(diào)性 各工作站之間通過通信網(wǎng)絡(luò)傳送各種數(shù)據(jù),整個(gè)系統(tǒng)信息共享,協(xié)調(diào)工作,以完成控制 系統(tǒng)的總體功能和優(yōu)化處理。
(6)控制功能齊全 控制算法豐富,集連續(xù)控制、順序控制和批處理控制于一體,可實(shí)現(xiàn)串級(jí)、前饋、解耦、 自適應(yīng)和預(yù)測(cè)控制等先進(jìn)控制,并可方便地加入所需的特殊控制算法。
DCS 的構(gòu)成方式十分靈活,可由專用的管理計(jì)算機(jī)站、操作員站、工程師站、記錄站、 現(xiàn)場(chǎng)控制站和數(shù)據(jù)采集站等組成,也可由通用的服務(wù)器、工業(yè)控制計(jì)算機(jī)和可編程控制器構(gòu)成。
處于底層的過程控制級(jí)一般由分散的現(xiàn)場(chǎng)控制站、數(shù)據(jù)采集站等就地實(shí)現(xiàn)數(shù)據(jù)采集和控 制,并通過數(shù)據(jù)通信網(wǎng)絡(luò)傳送到生產(chǎn)監(jiān)控級(jí)計(jì)算機(jī)。生產(chǎn)監(jiān)控級(jí)對(duì)來自過程控制級(jí)的數(shù)據(jù)進(jìn) 行集中操作管理,如各種優(yōu)化計(jì)算、統(tǒng)計(jì)報(bào)表、故障診斷、顯示報(bào)警等。隨著計(jì)算機(jī)技術(shù)的 發(fā)展,DCS 可以按照需要與更高性能的計(jì)算機(jī)設(shè)備通過網(wǎng)絡(luò)連接來實(shí)現(xiàn)更高級(jí)的集中管理 功能,如計(jì)劃調(diào)度、倉儲(chǔ)管理、能源管理等。
4. 嵌入式控制器軟件設(shè)計(jì)
嵌入式控制器是指在 DCS 的硬件體系結(jié)構(gòu)中的現(xiàn)場(chǎng)控制站,即圖 1 中被紅色橢圓圈中 的部分。在設(shè)定的控制周期下,主控制器循環(huán)的執(zhí)行從 I/O 設(shè)備采集現(xiàn)場(chǎng)數(shù)據(jù)、控制邏輯運(yùn) 算、與操作員站進(jìn)行數(shù)據(jù)交換、故障診斷、冗余等任務(wù)。
主控制器向下通過 I/O 插件或者現(xiàn)場(chǎng)總線網(wǎng)絡(luò),連接現(xiàn)場(chǎng)的各種 I/O 設(shè)備、執(zhí)行設(shè)備等; 向上通過系統(tǒng)網(wǎng)絡(luò)與操作員站、工程師站等連接。
DCS 系統(tǒng)的性能、可靠性等重要指標(biāo)主要體現(xiàn)在主控制器上[3]。因此,設(shè)計(jì)出高效穩(wěn)定 的現(xiàn)場(chǎng)控制器軟件系統(tǒng),對(duì)于設(shè)計(jì)整個(gè) DCS 系統(tǒng)的關(guān)鍵之一。
4.1 控制器硬件及系統(tǒng)平臺(tái)嵌入式控制器的硬件平臺(tái)為 Intel® XScale IXP425 嵌入式開發(fā)板;操作系統(tǒng)采用嵌入式Linux,版本為 2.6.16。
4.2 控制器軟件結(jié)構(gòu)
控制器軟件設(shè)計(jì)為運(yùn)行于嵌入式 Linux 平臺(tái)上的單線程應(yīng)用程序,調(diào)度策略為實(shí)時(shí)的先 入先出(FIFO)方式,現(xiàn)場(chǎng)運(yùn)行采用雙機(jī)熱備份方式。由于控制器軟件要完成的各種功能 相對(duì)獨(dú)立,因此本文中將控制器軟件程序設(shè)計(jì)成多模塊結(jié)構(gòu)。模塊之間的關(guān)系如下圖所示。
各模塊分別設(shè)計(jì)為:
(1)總控模塊??偪啬K指的是對(duì)系統(tǒng)整體運(yùn)行進(jìn)行監(jiān)控的模塊,它協(xié)調(diào)和調(diào)度其他 模塊的運(yùn)行,包括系統(tǒng)開始啟動(dòng)時(shí)的初始化、程序結(jié)束時(shí)所進(jìn)行的清理以及按照周期性調(diào)度 其它模塊的運(yùn)行。
(2)時(shí)間管理模塊。在控制器軟件中,維護(hù)一個(gè)與校時(shí)無關(guān)的時(shí)間計(jì)數(shù),系統(tǒng)根據(jù)這 個(gè)計(jì)數(shù)來進(jìn)行計(jì)時(shí)和調(diào)度。工作機(jī)和備份機(jī)之間通過校時(shí)使得絕對(duì)時(shí)間和計(jì)數(shù)都能保持一 致。
(3)通訊模塊。此模塊提供控制器軟件的網(wǎng)絡(luò)通訊功能,設(shè)計(jì)為具體網(wǎng)絡(luò)協(xié)議對(duì)上層 應(yīng)用即通訊服務(wù)模塊透明。同時(shí),通訊模塊應(yīng)該實(shí)現(xiàn)將網(wǎng)絡(luò)上的字節(jié)流封裝成具有特定功能 單元的數(shù)據(jù)包,及將具有特定功能單元的數(shù)據(jù)包轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)流,以供通訊服務(wù)模塊使用。
(4)通訊服務(wù)模塊。通訊服務(wù)模塊和通訊模塊密切相關(guān),是控制器軟件對(duì)外提供的服 務(wù)接口??刂破鬈浖x了一組標(biāo)準(zhǔn)的通訊服務(wù),外部只要按照規(guī)定的格式向控制器發(fā)送通 訊請(qǐng)求,控制器就會(huì)給出應(yīng)答或結(jié)果。通訊服務(wù)模塊實(shí)質(zhì)上是對(duì)通訊模塊所接收到的數(shù)據(jù)的 處理;并將處理結(jié)果交給通訊模塊發(fā)送。
(5)冗余模塊。冗余主要是涉及到工作機(jī)和備份機(jī)之間的通訊,采用網(wǎng)絡(luò)方式。主機(jī) 需要向從機(jī)傳送的數(shù)據(jù)主要包括:下裝文件、運(yùn)行數(shù)據(jù)、相關(guān)通訊服務(wù)命令等,另外工作機(jī) 和備份機(jī)之間的校時(shí)也通過冗余模塊完成。
(6)診斷模塊。診斷模塊負(fù)責(zé)檢測(cè)控制器運(yùn)行狀態(tài),并對(duì)出現(xiàn)及可能出現(xiàn)的異常狀態(tài) 進(jìn)行修正。
(7)錯(cuò)誤信息處理模塊??刂破鬈浖懈髂K通過此錯(cuò)誤信息處理模塊將各種錯(cuò)誤信 息記錄下來,通過通訊服務(wù),記錄的錯(cuò)誤信息可以被提取出來進(jìn)行分析,以便于分析、解決 出現(xiàn)的問題。
(8)狀態(tài)顯示模塊。狀態(tài)顯示模塊主要是負(fù)責(zé)按照要求控制控制器面<
提交
超越傳統(tǒng)直覺,MATLAB/Simulink助力重型機(jī)械的智能化轉(zhuǎn)型
新大陸自動(dòng)識(shí)別精彩亮相2024華南國際工業(yè)博覽會(huì)
派拓網(wǎng)絡(luò)被Forrester評(píng)為XDR領(lǐng)域領(lǐng)導(dǎo)者
智能工控,存儲(chǔ)強(qiáng)基 | ??低晭砭手黝}演講
展會(huì)|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會(huì)